﻿using System;
using System.Linq;
using System.Collections.Generic;
using System.Data;
using Matrix.Common.Utility;
using Matrix.MaKaYunShang.Model;
using Matrix.MaKaYunShang.DAL;
using Matrix.MaKaYunShang.Model.Dto;

namespace Matrix.MaKaYunShang.BLL
{
    public partial class DiscountBaseBLL : BaseBLL<DiscountBaseBLL>
    {
         #region 默认方法
        /// <summary>
        /// 增加一条数据
        /// </summary>
        public int Add(DiscountBase model)
        {
            return DiscountBaseDAL.Instance.Add(model);
        }

        /// <summary>
        /// 更新一条数据
        /// </summary>
        public bool Update(DiscountBase model)
        {
            return DiscountBaseDAL.Instance.Update(model);
        }

        /// <summary>
        /// 删除一条数据
        /// </summary>
        public bool Delete(int Id)
        {
            return DiscountBaseDAL.Instance.Delete(Id);
        }
        /// <summary>
        /// 批量删除一批数据
        /// </summary>
        public bool DeleteList(string Idlist)
        {
            return DiscountBaseDAL.Instance.DeleteList(Idlist);
        }

        /// <summary>
        /// 得到一个对象实体
        /// </summary>
        public DiscountBase GetModel(int Id)
        {
            var ds = DiscountBaseDAL.Instance.GetModel(Id);
            return ds == null ? null : ServicesHelper.DataSetToIList<DiscountBase>(ds).ToList()[0];
        }

        /// <summary>
        /// 获得数据列表
        /// </summary>
        public List<DiscountBase> GetModelList(string strWhere = null)
        {
            var ds = DiscountBaseDAL.Instance.GetList(strWhere);
            return ServicesHelper.DataSetToIList<DiscountBase>(ds).ToList();
        }
        #endregion

        #region 扩展方法
        /// <summary>
        ///     获得分页数据列表
        /// </summary>
        public TableDataViewDto<ViewDiscountBaseDto> GetPagingList(int draw, int pageIndex, int pageSize, string searchKeyWord, string colOrder)
        {
            try
            {
                int totalCount = 0;
                List<ViewDiscountBaseDto> list = DiscountBaseDAL.Instance.GetPagingList(pageIndex, pageSize, searchKeyWord, colOrder, ref totalCount);
                list.ForEach(a =>
                {
                    a.Action =
                        "<a class='btn btn-warning' href='javascript:;' onclick=updateData(" + a.Id + ");>修改</a> " +
                        "<a class='btn btn-danger' href='javascript:;' onclick=deleteData(" + a.Id + ");>删除</a>";
                }
                    );
                var returnDataList = new TableDataViewDto<ViewDiscountBaseDto>
                {
                    data = list,
                    draw = draw,
                    recordsFiltered = totalCount,
                    recordsTotal = totalCount
                };
                return returnDataList;
            }
            catch (Exception ex)
            {
                _fileLog.Error(" GetPagingList | Exception: " + ex);
                return null;
            }
        }
        #endregion
    }
}